home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 18 Board & Card Games / 1000MI.BIN (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  6.2 KB  |  196 lines

  1. 100 REM F. COVITZ
  2. 110 PRINT"[147]":DEFFNA(L)=2^(L-1):E=106:I=RND(-TI):POKE53280,.:POKE53281,.
  3. 120 DIMS(7),C%(E),T$(4,5),PL(1,3),H(1,7),T1%(4),T2%(4,5),TB(1)
  4. 140 DATA"OUT OF GAS","FLAT TIRE",ACCIDENT,"SPEED LIMIT(50)",STOP
  5. 150 DATAGAS,"SPARE TIRE",REPAIRS,"END SPEED LIMIT",ROLL,"EXTRA TANK"
  6. 160 DATA"PERMANENT TIRE","DRIVING ACE",R,RIGHT-OF-WAY,200,100,75,50,25
  7. 180 FORI=1TO4:FORJ=1TO5:READT$(I,J):NEXTJ,I
  8. 200 DATA18,56,60,106,4,7,10,14,19,25,31,37,43,57,58,59,60,60,61,65,77,87,97,107
  9. 210 B$="                                      "
  10. 250 FORI=1TO4:READT1%(I):NEXTI:FORI=1TO4:FORJ=1TO5:READT2%(I,J):NEXTJ,I
  11. 280 G=0:FORI=1TOE:C%(I)=I:NEXTI:S(0)=0:S(1)=0
  12. 290 PRINT"SHUFFLING...":GOSUB790:GOSUB870
  13. 300 FORI=0TO1:FORJ=0TO3:PL(I,J)=0:NEXTJ:TB(I)=9:NEXTI
  14. 310 FORI=0TO1:FORJ=1TO6:CN=CN+1:H(I,J)=C%(CN):NEXTJ,I
  15. 330 PRINT"":FORA=1TO6:C=H(1,A):GOSUB830:PRINTTAB(3);N$:NEXTA
  16. 350 P=1:CN=CN+1:IFCN>ETHENS=S+1:IFS>6THENN$="NOBODY":GOTO1770
  17. 360 IFS>0THEN400
  18. 370 C=C%(CN):H(1,0)=C:GOSUB830:PRINT"";
  19. 380 PRINTTAB(3)LEFT$(B$,13)
  20. 390 PRINT"[145]";TAB(3);N$
  21. 400 PRINT"YOUR MOVE[146]"LEFT$(B$,30)
  22. 405 IF(PL(0,3)AND8)ANDPL(0,2)>-1THENPL(0,2)=5:J=22:GOSUB2120:PRINTTAB(9);"ROLL      "
  23. 410 PRINT" PLAY(P) OR DISCARD(D) WHICH CARD?   [157][157]";
  24. 415 GETN$:IFN$>""GOTO415
  25. 420 GETN$:IFN$<>"D"ANDN$<>"P"ANDN$<>" "THENGOSUB3000:GOTO420
  26. 425 PRINTN$;:IFN$=" "THENN$="D":N=S:PRINT"[157]D"MID$(STR$(S+1),2):GOTO470
  27. 430 GETQ$:IFQ$=CHR$(20)GOTO410
  28. 435 N=VAL(Q$)-1:IFN>6ORN<STHENGOSUB3000:GOTO430
  29. 440 PRINTQ$;
  30. 450 GETQ$:IFQ$=""THENGOSUB3000:GOTO450
  31. 460 IFQ$<>CHR$(13)THENPRINT"[157] [157]";:GOTO430
  32. 470 PRINT:IFN$="D"THENGOSUB970:GOSUB950:GOTO500
  33. 480 GOSUB930
  34. 490 IFCH=0THENINPUT",OK  Y[157][157][157]";N$:GOTO400
  35. 500 PRINT"":FORA=0TO3+S:PRINT"";:NEXTA:PRINTTAB(3)LEFT$(B$,18)
  36. 520 IFPL(1,0)=1000THENN$="YOU":GOTO1770
  37. 530 D$="PLAY"
  38. 540 PRINT"":FORI=1TO39:PRINT" ";:NEXTI
  39. 550 PRINT"THINKING....":P=0:CN=CN+1
  40. 555 IF(PL(1,3)AND8)ANDPL(1,2)>-1THENPL(1,2)=5:J=16:GOSUB2120:PRINTTAB(9);"ROLL      "
  41. 560 IFS=0THENH(0,0)=C%(CN)
  42. 570 HZ=PL(0,2):IFHZ>-1ANDPL(0,1)>-1THEN650
  43. 580 GOSUB1520:IFCFTHENPL(0,3)=PL(0,3)+FNA(M):PL(0,CF)=M:S(2)=S(2)+300
  44. 600 IFCFTHENS(4)=S(4)+100:GOTO770
  45. 610 IFSORPL(1,0)>790ORPL(0,0)>790THENGOSUB1730:IFSFTHEN770
  46. 620 GOSUB1480:IFCHTHENPL(0,CH)=M:GOTO770
  47. 630 IFPL(0,2)>-1THEN650
  48. 640 GOTO730
  49. 650 IFPL(0,2)<5THEN720
  50. 660 LM=201:IFPL(0,1)<0THENLM=51
  51. 670 IFLM<200ANDPL(0,0)<900THENGOSUB1450:IFCHTHENPL(0,1)=4:GOTO770
  52. 680 CH=0:D=0:FORA=STO6:C=H(0,A):GOSUB830:B=VAL(N$)
  53. 690 IFB<LMAND(B+PL(0,0)<1001)ANDB>DTHEND=B:N=A:CH=1
  54. 700 NEXTA:IFCHTHENPL(0,0)=PL(0,0)+D:GOTO770
  55. 710 GOTO730
  56. 720 GOSUB1580:IFCHAND(PL(0,2)>-1)THENPL(0,2)=5:GOTO770
  57. 730 IFPL(1,2)<0ANDPL(1,1)<0THEN760
  58. 740 GOSUB1380:IFCH=1ANDPL(1,0)<950THENPL(1,1)=-4:GOTO770
  59. 750 IFCH=2ANDPL(1,2)=5THENPL(1,2)=-M:GOTO770
  60. 760 GOSUB1600
  61. 770 GOSUB1830:IFPL(0,0)=1000THENN$="I":GOTO1770
  62. 780 GOSUB2130:GOTO350
  63. 790 CN=0:EN=E+1:S=0
  64. 800 FORI=2TO5:S(I)=0:NEXTI
  65. 810 FORI=1TOE:R%=I+(EN-I)*RND(TI):T=C%(I):C%(I)=C%(R%):C%(R%)=T
  66. 820 NEXTI:RETURN
  67. 830 FORI=1TO4:FORJ=1TO5
  68. 840 IFC>T1%(I)THENJ=5:GOTO860
  69. 850 IFC<T2%(I,J)THENN$=T$(I,J):K=I:L=J:I=4:J=5
  70. 860 NEXTJ,I:RETURN
  71. 870 PRINT"[147] YOUR HAND [146]";SPC(13);"DISCARD[146]"
  72. 880 FORI=0TO6:PRINTI+1:NEXTI:PRINT:PRINT"YOUR PILE"
  73. 890 PRINT"DISTANCE[141]SPEED   [141]BATTLE  [141]SAFETY  "
  74. 900 PRINT:PRINT"MY PILE"
  75. 910 PRINT"DISTANCE[141]SPEED   [141]BATTLE  [141]SAFETY  "
  76. 920 PRINT"";:RETURN
  77. 930 C=H(1,N):GOSUB830:GOSUB1010:P=1
  78. 940 IFCH=0THENPRINT""MS$;:RETURN
  79. 950 GOSUB1000:J=N+5+6*(1-P):GOSUB2120:PRINTTAB(3)LEFT$(B$,20)
  80. 960 PRINT"[145]"TAB(3):C=H(P,N):GOSUB830:PRINTN$:RETURN
  81. 970 C=H(P,N):GOSUB830
  82. 980 PRINT""TAB(23)N$LEFT$(B$,16-LEN(N$)):PRINT"":RETURN
  83. 1000 H(P,N)=H(P,S):RETURN
  84. 1010 P=1:MS$="":ONKGOTO1090,1170,1290,1020
  85. 1020 D=VAL(N$):IFPL(1,0)+D>1000THENMS$="YOU HAVE EXCEEDED 1000"
  86. 1030 IFPL(1,1)=-4ANDD>50THENMS$="YOU HAVE A "+T$(1,4)
  87. 1040 IFPL(1,2)<5THENMS$="YOU DON'T HAVE A ROLL CARD"
  88. 1050 IFPL(1,2)<0THENMS$="YOU HAVE A HAZARD"
  89. 1060 IFMS$<>""THENCH=0:RETURN
  90. 1070 PL(1,0)=PL(1,0)+D:CH=1
  91. 1080 N$=STR$(PL(1,0)):J=14:GOTO1270
  92. 1090 IFL<>4ANDPL(0,2)<5THENMS$="I DON'T HAVE A ROLL CARD"
  93. 1100 IFL<>4ANDPL(0,2)<0THENMS$="I ALREADY HAVE A HAZARD"
  94. 1110 IFL=4ANDPL(0,1)<0THENMS$="I HAVE A SPEED LIMIT"
  95. 1120 IFL=4AND(PL(0,3)AND16)THENMS$="I HAVE "+T$(3,5)
  96. 1130 IFPL(0,3)ANDFNA(L)THENMS$="HA!-I HAVE THE SAFETY"
  97. 1140 IFMS$<>""THENCH=0:RETURN
  98. 1150 IFL<>4THENPL(0,2)=-L:J=22:GOTO1270
  99. 1160 CH=1:PL(0,1)=-4:J=21:GOTO1270
  100. 1170 IFL<>5THEN1220
  101. 1180 IFPL(1,2)=5THENMS$="YOU HAVE A ROLL CARD"
  102. 1190 IFPL(1,2)<0THENMS$="YOU HAVE A HAZARD":IFPL(1,2)=-5THENMS$=""
  103. 1200 IFMS$<>""THENCH=0:RETURN
  104. 1210 PL(1,2)=5:GOTO1260
  105. 1220 IFL=4ANDPL(1,1)=-4THENPL(P,1)=4:J=15:GOTO1270
  106. 1230 IFPL(1,2)<>-LTHENMS$="YOU DON'T NEED TO DO THAT"
  107. 1240 IFMS$<>""THENCH=0:RETURN
  108. 1250 PL(P,2)=L
  109. 1260 J=16
  110. 1270 GOSUB2120:PRINTTAB(9)N$"       "
  111. 1280 CH=1:RETURN
  112. 1290 P=1:CF=0:IFPL(1,2)=-LTHENPL(1,2)=L:CF=1
  113. 1300 IFL=5ANDPL(1,1)<0THENCF=1
  114. 1310 S(5)=S(5)+100:PL(1,3)=PL(1,3)+FNA(L)
  115. 1320 IFCFTHENPRINT"COUP FOUREE":S(3)=S(3)+300:GOSUB2130
  116. 1330 IFL=5THENPL(P,3)=PL(P,3)+8:PL(P,1)=4:J=21-6*P:GOSUB2120:PRINTTAB(9)T$(2,4)
  117. 1340 J=23-6*P:GOSUB2120:PRINTTAB(TB(P))""N$""
  118. 1350 TB(P)=TB(P)+15:IFTB(P)>30ANDTB(P)<49THENTB(P)=49
  119. 1360 IFCFANDPL(P,2)=LTHENJ=22-6*P:GOSUB2120:PRINTTAB(9)T$(2,L)"       "
  120. 1370 CF=0:CH=1:RETURN
  121. 1380 CH=0:FORA=STO6:C=H(0,A):GOSUB830
  122. 1390 IFK<>1THEN1440
  123. 1400 IFL=4ANDPL(1,1)>-1THENCH=1:M=L:N=A
  124. 1410 IFL<>4ANDPL(1,2)>0THENCH=2:M=L:N=A
  125. 1420 IFFNA(L)ANDPL(1,3)THENCH=0
  126. 1430 IFCHTHENA=6
  127. 1440 NEXTA:RETURN
  128. 1450 CH=0:FORA=STO6:C=H(0,A):GOSUB830:IFK=2ANDL=4THENCH=1:N=A:A=6
  129. 1470 NEXTA:RETURN
  130. 1480 CH=0:FORA=STO6:C=H(0,A):GOSUB830
  131. 1490 IFK=2ANDL=-HZTHENCH=2:M=L:N=A:A=6:GOTO1510
  132. 1500 IFK=2ANDL=4ANDPL(0,1)=-4THENCH=1:M=L:N=A
  133. 1510 NEXTA:RETURN
  134. 1520 SF=0:CF=0:FORA=STO6:C=H(0,A):GOSUB830:IFK<>3THEN1570
  135. 1530 IFPL(0,1)<0ANDL=5THENCF=1
  136. 1540 SF=SF-8*(L=5)+FNA(L):M=L:N=A:IFL=-HZTHENCF=2
  137. 1560 IFCFTHENA=6
  138. 1570 NEXTA:RETURN
  139. 1580 CH=0:FORA=STO6:C=H(0,A):GOSUB830:IFK=2ANDL=5THENCH=1:N=A:A=6
  140. 1590 NEXTA:RETURN
  141. 1600 D$="DISCARD":FORA=STO6:C=H(0,A):GOSUB830
  142. 1610 IFK=1AND(PL(1,3)ANDFNA(L))THEN1760
  143. 1620 IFK=1ANDL=4ANDPL(1,0)>949THEN1760
  144. 1630 IFK=2AND(FNA(L)AND(PL(0,3)ORSF))THEN1760
  145. 1640 IFK=4ANDVAL(N$)>(1000-PL(0,0))THEN1760
  146. 1650 NEXTA
  147. 1660 FORA=STO6:C=H(0,A):GOSUB830
  148. 1670 IFK=4ANDVAL(N$)ANDVAL(N$)<76THEN1760
  149. 1680 NEXTA
  150. 1690 FORA=STO6:C=H(0,A):GOSUB830
  151. 1700 IFK=1AND(FNA(L)AND(PL(0,3)ORSF)=0)THEN1760
  152. 1710 IFK=2ANDL<5AND(PL(1,3)ANDFNA(L)=0)THEN1760
  153. 1720 NEXTA
  154. 1730 GOSUB1520
  155. 1740 IFSFTHENPL(0,3)=PL(0,3)+FNA(M):D$="PLAY[146]":S(4)=S(4)+100:RETURN
  156. 1750 N=INT((7-S)*RND(1))+S:IFSTHENRETURN:C=H(0,N):GOSUB830:IFVAL(N$)>100GOTO1750
  157. 1755 RETURN
  158. 1760 N=A:A=6:NEXTA:RETURN
  159. 1770 PRINT" "N$" REACHED 1000 MILES!!...":PRINTB$
  160. 1780 INPUT"[145]NEXT ROUND  Y[157][157][157]";N$
  161. 1790 GOSUB1950:IFG>4ORLEFT$(N$,1)="N"THENPRINT"GAME OVER":GOTO1810
  162. 1800 INPUT"OK  Y[157][157][157]";N$:GOTO290
  163. 1810 INPUT"NEW GAME  Y[157][157][157]";N$:IFN$="Y"THENRUN
  164. 1820 END
  165. 1830 P=0:C=H(0,N):GOSUB830
  166. 1840 PRINT"MY "D$"[146] IS "N$;:FORI=1TO32-LEN(D$+N$):PRINT" ";:NEXTI
  167. 1850 PRINT:P=0
  168. 1860 IFLEN(D$)>6THENGOSUB980:GOSUB1000:RETURN
  169. 1870 IFCFTHENPRINT"COUP FOUREE"
  170. 1880 PRINT"":IFK=4THENN$=STR$(PL(0,0)):J=20
  171. 1890 CH=0:IFK=3THENJ=23:CH=1
  172. 1900 IFK=2THENJ=22:IFL=4THENJ=21
  173. 1910 IFK=1THENJ=16:IFL=4THENJ=15
  174. 1920 GOSUB2120:PRINTTAB(9);
  175. 1930 IFCHTHENGOSUB1330:GOSUB1000:RETURN
  176. 1940 PRINTN$"         ":GOSUB1000:RETURN
  177. 1950 G=G+1:PRINT"[147]SCORES FOR ROUND"G
  178. 1960 PRINT:PRINTTAB(17)"ME"TAB(26)"YOU"
  179. 1970 PRINT"DISTANCE"TAB(15)PL(0,0)TAB(25)PL(1,0)
  180. 1980 S(6)=PL(0,0):S(7)=PL(1,0)
  181. 1990 PRINT"COMPLETE TRIP"
  182. 2000 IFS(6)=1000THENPRINTTAB(15)"[145] 400":S(6)=S(6)+400
  183. 2010 IFS(7)=1000THENPRINTTAB(25)"[145] 400":S(7)=S(7)+400
  184. 2020 PRINT"COUPS FOUREES"TAB(15)S(2)TAB(25)S(3)
  185. 2030 S(6)=S(6)+S(2):S(7)=S(7)+S(3)
  186. 2040 PRINT"SAFETIES"TAB(15)S(4)TAB(25)S(5)
  187. 2050 S(6)=S(6)+S(4):S(7)=S(7)+S(5)
  188. 2060 PRINT"SHUT OUT":IFPL(1,0)=0THENPRINTTAB(15)"[145] 500":S(6)=S(6)+500
  189. 2070 IFPL(0,0)=0THENPRINTTAB(25)"[145] 500":S(7)=S(7)+500
  190. 2080 PRINT:PRINT"ROUND"G"TOTAL"TAB(15)S(6)TAB(25)S(7)
  191. 2090 S(0)=S(0)+S(6):S(1)=S(1)+S(7)
  192. 2100 PRINT:PRINT"GRAND TOTAL"TAB(15)S(0)TAB(25)S(1):RETURN
  193. 2120 PRINT"";:FORI=1TOJ:PRINT:NEXTI:RETURN
  194. 2130 FORI=0TO800:NEXTI:RETURN
  195. 3000 PRINT"[166][157]";:I=FRE(0):PRINT" [157]";:RETURN
  196.